/**
 * @author tmh
 * @date 2024/9/26 22:00
 * @description
 */
public class T153寻找旋转排序数组中的最小值 {
    /**
     * 这里要用左闭右开的写法，不然的话就会造成一个死循环
     * 这道题需要的是我们找最小值，当我们使用这个写法结束循环之后，right就指向的是我们的最小值的下标
     *
     * @param nums
     * @return
     */
    public int findMin(int[] nums) {
        int left = 0;
        int right = nums.length;
        int n = nums.length - 1;
        while (left < right) {
            int mid = left + ((right - left) >> 1);
            if (nums[mid] > nums[n]) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }
        return nums[right];
    }
}
